package com.founder.cebxkit;

public class CEBXOutlineElemWrapper {
	private long mXEKOutlineElem;
	
	/**
	 * 构造函数，负责各种初始值。
	 * @return
	 */
	public CEBXOutlineElemWrapper(long handle) {
		mXEKOutlineElem = handle;
	}

	/**
	 * JNI使用。
	 * @return
	 */
	public long GetXEKHandle() {
		return mXEKOutlineElem;
	}
	
	/**
	 * 获取Title。
	 * @return
	 */
	public native String GetTitle();
	
	/**
	 * 获取Expand，是否展开。
	 * @return
	 */
	public native boolean GetExpand();

	/**
	 * 获取文字风格。
	 * @return
	 */
	public native byte GetTextStyle();

	/**
	 * 获取文字颜色ARGB。
	 * @return
	 */
	public native int GetTextColor();
	
	/**
	 * 获取目录项的跳转目标。
	 * @param gotodest		跳转目标。
	 * @return		成功True，其他False
	 */
	public native boolean GetGotoDest(CxGotoDest gotodest);
	
	/**
	 * 获取当前目录第一个子目录对象。
	 * @return
	 */
	public CEBXOutlineElemWrapper GetFirstChild() {
		long handle = GetXEKFirstChild();
		if (handle != 0)
			return new CEBXOutlineElemWrapper(handle);
		else
			return null;
	}
	
	/**
	 * 获取当前目录下，指定目录对象的下一个兄弟目录对象。
	 * @param curchild		指定目录对象
	 * @return
	 */	
	public CEBXOutlineElemWrapper GetNextChild(CEBXOutlineElemWrapper curchild) {
		long handle = curchild.GetXEKHandle();

		if (handle != 0) {
			long xekhandle = GetXEKNextChild(handle);
			if (xekhandle != 0)
				return new CEBXOutlineElemWrapper(xekhandle);
			else
				return null;
		}
		else
			return null;
	}
		
	/**
	 * JNI调用。
	 * @return
	 */
	private native long GetXEKFirstChild();
	
	/**
	 * JNI调用。
	 * @param handle		当前XEK目录对象
	 * @return
	 */	
	private native long GetXEKNextChild(long handle);
}
